package com.ticket.sass.common.ticketserver.platform.cx30.response

import com.google.gson.annotations.SerializedName

data class ScheduleModel(
    @SerializedName("QueryPlanInfoResult")
    val queryPlanInfoResult: QueryPlanInfoResult,
) {
    data class QueryPlanInfoResult(
        @SerializedName("ResultCode")
        override val resultCode: Int,
        @SerializedName("Message")
        override val message: String,
        @SerializedName("CinemaPlans")
        val cinemaPlans: CinemaPlans?,
    ) : BaseResult {
        data class CinemaPlans(
            @SerializedName("CinemaPlan")
            val cinemaPlan: List<CinemaPlan>
        ) {
            data class CinemaPlan(
                @SerializedName("ScreenCode")
                val screenCode: String,
                @SerializedName("Films")
                val films: Films,
                @SerializedName("PlaythroughFlag")
                val playthroughFlag: String,
                @SerializedName("Price")
                val price: Price?,
                @SerializedName("StartTime")
                val startTime: String,
                @SerializedName("FeatureAppNo")
                val featureAppNo: String,
            ) {
                data class Price(
                    @SerializedName("ServiceAddFee")
                    val serviceAddFee: Float,
                    @SerializedName("ListingPrice")
                    val listingPrice: Float,
                    @SerializedName("CinemaAllowance")
                    val cinemaAllowance: Float,
                    @SerializedName("LowestPrice")
                    val lowestPrice: Float,
                    @SerializedName("StandardPrice")
                    val standardPrice: Float,
                )

                data class Films(
                    @SerializedName("Film")
                    val film: Film
                ) {
                    data class Film(
                        @SerializedName("Lang")
                        val lang: String,
                        @SerializedName("Duration")
                        val duration: Int,
                        @SerializedName("Sequence")
                        val sequence: Int,
                        @SerializedName("FilmCode")
                        val filmCode: String,
                        @SerializedName("FilmName")
                        val filmName: String
                    )
                }
            }
        }
    }
}
